package com.walter.epay.param.request;

import com.walter.epay.paramenum.createorder.EpayCreateOrderIsHtmlEnum;

import java.io.Serializable;

/**
 * 创建订单参数
 *
 * @author wuchenxi
 * @date 2022-12-31 13:50:57
 */
public class EpayCreateOrderParam implements Serializable {
    /**
     * 【必传】商户id
     */
    private String mchId;

    /**
     * 【必传】商户支付单号，可以是时间戳，不可重复，长度最大50个字符
     */
    private String payId;

    /**
     * 【必传】微信支付传入1 支付宝支付传入2
     */
    private Integer type;

    /**
     * 【可选】当前订单支付成功后的异步回调地址；如果不填，则使用在易支付管理平台填写的异步回调地址
     */
    private String notifyUrl;

    /**
     * 【可选】如果isHtml=1，当前订单支付成功后跳转的页面地址；如果不填，则使用在以支付管理平台填写的同步回调地址
     */
    private String returnUrl;

    /**
     * 【必传】订单金额
     */
    private Double price;

    /**
     * 【必传】签名，计算方式为 md5(payId+param+type+price+通讯密钥)
     */
    private String sign;

    /**
     * 【必传】商品名，长度最大50个字符
     */
    private String goodsName;

    /**
     * 【可选】传输参数，将会原样返回到异步和同步通知接口
     */
    private String param;

    /**
     * 【可选】0：返回订单json数据；1：跳转到支付页
     * 如果该参数为1，易支付响应的数据只有跳转页面的url地址，开发者可以通过 window.location.href来进行跳转
     */
    private Integer isHtml;

    public String getMchId() {
        return mchId;
    }

    public void setMchId(String mchId) {
        this.mchId = mchId;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getReturnUrl() {
        return returnUrl;
    }

    public void setReturnUrl(String returnUrl) {
        this.returnUrl = returnUrl;
    }

    public String getPayId() {
        return payId;
    }

    public void setPayId(String payId) {
        this.payId = payId;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getParam() {
        return param;
    }

    public void setParam(String param) {
        this.param = param;
    }

    public Integer getIsHtml() {
        return isHtml;
    }

    public void setIsHtml(Integer isHtml) {
        this.isHtml = isHtml;
    }

    /**
     * 创建订单后，是不是跳转到易支付支付页面支付
     *
     * @return <ul>
     *     <li>true：创建订单后，响应易支付支付页面url</li>
     *     <li>false：创建订单后，返回订单json数据</li>
     * </ul>
     */
    public boolean isHtml() {
        return this.isHtml != null && this.isHtml == EpayCreateOrderIsHtmlEnum.IS_HTML.getCode();
    }
}
